<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
	</head>
	<body>
		<script>
			// Promise 本质就是一个构造函数
			// console.dir(Promise)

			// Promise 是一个构造函数，所以在使用的时候需要实例化
			// 同时还需要给构造函数传递一个方法，只有传入了这个方法， Promise 才有实际意义
			// 这个方法有两个参数 resolve 、reject
			// resolve 、reject 也是两个回调函数
			// resolve  =>  正确的返回结果
			// reject   =>  错误的返回结果
			var pro = new Promise((resolve, reject) => {
				setTimeout(() => {
					var flag = true

					if (flag) {
						resolve('正确执行')
					} else {
						reject('错误结果')
					}
				}, 1000)
			})

			// Promise 是解决异步问题的，但是 Promise 本身就是一个异步函数
			// 所以需要使用回调函数接收到返回对的结果
			// then() 有两个函数参数，其中第一个是 resolve 的回调函数，第二个是 reject 的回调函数
			pro.then(
				(data) => {
					console.log(data)
				},
				(err) => {
					console.log(err)
				}
			)
		</script>
	</body>
</html>
